﻿//////////////////////////////////////////////////////////////////////////////
//
//  Copyright © 1998-2024 Glodon Company Limited.  All rights reserved.
//
//  Use of this software is subject to the terms of the Glodon license
//  agreement provided at the time of installation or download, or which
//  otherwise accompanies this software in either electronic or hard copy form.  
//
//////////////////////////////////////////////////////////////////////////////

// Reviewed
#pragma once

#include "GcmpFoundation.h"
#include "WeakReferenceable.h"
#include "GbmpQuickCast.h"

namespace gcmp
{
    /// \brief 所有接口的基类
    ///
    /// 提供弱引用，派生类可以用于WeakPtr<T>
    /// \see WeakPtr
    class GCMP_FOUNDATION_EXPORT IObject : public WeakReferenceable
    {
        DEFINE_CAST_BASE(gcmp::IObject);
    public:
        /// \brief 构造函数
        virtual ~IObject(){}
    };
}
